草庐IT

Java float 表示为十六进制数

全部标签

C++ 表示可选对象

我有一个C++project.我从事的项目是自学用C++构建一个半现实的程序。它以递归方式从网站下载内容。每个下载都有一个用于下载内容的URL,以及一个用于引用者的URL(或从中提取内容的页面的URL)。除非它是第一个URL,否则总是有一个引荐来源网址。我一直在作弊,只是将第一个URL当作它自己的引荐来源网址。我最近更改了URL类以具有空白(或空)表示。这感觉像是黑客攻击。有没有一种方法可以在C++中表示可选对象而无需:使用指针?为无效对象浪费空间?或制作对象的“空白”版本? 最佳答案 你可以使用boost::optional。bo

c++ - 将二进制值转换为浮点值的计算器——我做错了什么?

我有以下代码,它以二进制形式将6个float写入磁盘并读回:#include#includeintmain(){intnumSegs=2;intnumVars=3;float*data=newfloat[numSegs*numVars];for(inti=0;i输出:00.230.460.690.921.1500.230.460.690.921.15当我在hexer中加载文件时,我们得到:000000001f856b3e1f85eb3ed7a3303f1f856b3f3333933f----------------我想直接从小数计算浮点值。例如:1f856b3e变为0.23,1f85e

c++ - 十六进制字符到 std::string 的 constexpr 转换

我有很多这样的字符串:"343536"_hex我想将其转换成相应的字节串。我正在使用C++11并定义了一个用户定义的字符串文字以将它们转换为十六进制字符串。但是,我目前拥有的转换不能作为我正在寻找的constexpr进行评估。特别是我想使用这样的东西,但作为constexpr:std::stringoperator""_hex(constchar*s,std::size_tslen){std::stringstr;str.reserve(slen);charch[3];unsignedlongnum;ch[2]='\0';for(;slen;slen-=2,s+=2){ch[0]=s[

c++ - 有没有比 vector< vector< T>> 更自然的方式来表示 T 的矩阵?

上下文:我正在尝试学习C++(同时阅读一些stackoverflow社区推荐的书籍),我决定尝试制作一个具有基本功能的元胞自动机程序,只是为了学习(并且因为它对我来说很有趣)。问题:有没有比使用vector>更自然的方式来表示Cell元素的矩阵?我正在标准库或其他一些流行的库中寻找潜在的替代品。关于性能的评论将不胜感激。我在使用vectorofvectors时没有遇到问题,在语法上也没有问题,我只是想知道替代方案。因为我没有经验,所以每次我写一些代码时,我都会想可能有很多我自己找不到的更直接的方法。这是我的第一个问题,所以如果我做了一些违反问题指南的事情,我将非常感谢你指出这一点。有用

c++ - 找到与另一个二进制模式匹配的所有 2 位值,然后将它们相加

第一个值:我有一个二进制值,它实际上是一个紧凑的2位值序列。(也就是说,二进制值中的每2位代表0、1、2或3。)因此,例如0、3、1、2变为00110110。在这个二进制字符串中,我只关心3(或者,我可以翻转位,只关心0,如果这样可以让你的回答更容易的话)。所有其他数字都无关紧要(我们稍后会讨论原因)。第二个值:我有第二个二进制值,它也是一个压缩的2位值系列,以相同的方式表示。它与第一个值的长度相同。数学:我想要第二个值中与第一个值中的3具有相同位置的2位数字的总和。换句话说,如果我有:First:11000011Second:01111101然后我的答案将是“2”(我将“第二”中的第

c++ - 将表示二维数组的 std::vector<std::vector <double>> 转换为 cv::Mat

将std::vector的嵌套std::vector转换为cv::Mat的最优雅和最有效的方法是什么>?嵌套结构包含一个数组,即所有内部std::vector具有相同的大小并表示矩阵行。我不介意将数据从一个复制到另一个。我知道一个单一的、非嵌套的std::vector很容易,有一个构造函数:std::vectormyvec;cv::Matmymat;//fillmyvecboolcopy=true;myMat=cv::Mat(myvec,copy);嵌套vector呢? 最佳答案 我的变体(需要OpenCV2.4):intsize=

c++ - qDebug - 如何以位输出数据(二进制格式)

qDebug()可以输出二进制格式的数据吗?例如,我想检查一些状态变化:unsignedcharstatus;...qDebug()我想生成二进制格式的输出,类似于:Status:1011 最佳答案 如果你想以二进制打印,你可以使用:binunsignedcharstatus=11;qDebug()QString::number()unsignedcharstatus=11;qDebug()QString::arg()unsignedcharstatus=11;//toprintasstringwith8characterspadd

c++ - 在 C/C++ 中解析二进制消息流

我正在为二进制协议(protocol)(JavadGRIL协议(protocol))编写解码器。它由大约一百条消息组成,数据格式如下:structMsgData{uint8_tnum;floatx,y,z;uint8_televation;...};这些字段是ANSI编码的二进制数字,它们彼此紧随其后,没有间隙。解析此类消息的最简单方法是将输入的字节数组转换为适当的类型。问题是流中的数据是打包的,即未对齐。在x86上,这可以通过使用#pragmapack(1)来解决。但是,这在其他一些平台上不起作用,或者由于进一步处理未对齐的数据而导致性能开销。另一种方法是为每种消息类型编写一个特定的

c++ - 将二进制编码的十进制 (BCD) 解码为无符号整数

在我的项目中使用的值是用4位二进制编码的十进制数(BCD)表示的,它最初存储在一个字符缓冲区中(例如,由指针指向constunsignedchar*).我想将输入的BCD字符流转换为整数。你能告诉我一个有效和快速的方法吗?数据格式示例和预期结果:BCD*2;1001011101100101=9765"9""7""6""5"非常感谢! 最佳答案 unsignedintlulz(unsignedcharconst*nybbles,size_tlength){unsignedintresult(0);while(length--){res

C#将类型变量作为类型表示

假设我正在使用通用功能:publicinterfaceIFoo{TypeType;TValueRead();}publicclassFoo:IFoo{}varf=newFoo();我想写:varvalue=f.Read();但这给出了错误:f是一个变量,但像一种类型一样使用我可以写有条件:objectvalue;if(f.Type==typeof(bool)){value=f.Read();}if(f.Type==typeof(byte)){value=f.Read();}...但这并不能真正起作用,因为它是冗长的,如果我不提前所有可能的类型,并且值是一个对象而不是类型,则可能是不完整的。有解